#include <stdio.h> 
#include <sys/types.h>
#include <sys/stat.h>
#include <fcntl.h>
#include <unistd.h>
#include<string.h>
int main()
{

  printf("stdin ->fd: %d\n", stdin->_fileno);
  printf("stdout->fd: %d\n", stdout->_fileno);
  printf("stderr->fd: %d\n", stderr->_fileno);



  FILE* fp1 = fopen("log1.txt", "w");
  
  if(fp1 == NULL)
  {
    perror("fopen");
    return 1;
  }
  printf("fd1: %d\n",fp1->_fileno);


  FILE* fp2 = fopen("log2.txt", "w");
  
  if(fp2 == NULL)
  {
    perror("fopen");
    return 1;
  }
  printf("fd2: %d\n",fp2->_fileno);

  FILE* fp3 = fopen("log3.txt", "w");
  
  if(fp3 == NULL)
  {
    perror("fopen");
    return 1;
  }
  printf("fd3: %d\n",fp3->_fileno);

  //fwrite("hello\n", 5, 1, fp);

  fclose(fp1);
  fclose(fp2);
  fclose(fp3);








 // umask(0);
 // int fd = open("log.txt", O_WRONLY | O_CREAT | O_TRUNC, 0666);
 // if(fd < 0)
 // {
 //   perror("open");
 //   return 1;
 // }

 // const char *message = "hello\n";
 // write(fd, message, strlen(message));

 // close(fd);
  return 0;
}






























//#define ONE    1     // 1 0000 0001
//#define TWO   (1<<1) // 2 0000 0010
//#define THREE (1<<2) // 4 0000 0100
//#define FOUR  (1<<3) // 8 0000 1000
//
//
//{
//    if(flag & ONE)
//        printf("one\n");
//    if(flag & TWO)
//        printf("two\n");
//    if(flag & THREE)
//        printf("three\n");
//    if(flag & FOUR)
//        printf("four\n");
//}
//
//int main()
//{
//    print(ONE);
//    printf("\n");
//
//    print(TWO);
//    printf("\n");
//
//    print(ONE | TWO);
//    printf("\n");
//
//    print(ONE | TWO | THREE);
//    printf("\n");
//
//    print(ONE | FOUR);
//    printf("\n");
//
//    print(ONE | TWO | THREE | FOUR);
//    printf("\n");
//    return 0;
//}
